image: rust:latest
variables:
- CARGO_TARGET_DIR: target
+ CARGO_TARGET_DIR: ${CI_PROJECT_DIR}/target
# --all-features
CURRENT_FEATURES: --features v2018_9
CARGO_HOME: ${CI_PROJECT_DIR}/cargo
- apt-get update
- apt-get install -y -t stretch-backports cmake libostree-dev
+cache:
+ paths:
+ - cargo/
+ - target/
+
stages:
+- check
- build
- publish
+# checks
+check:
+ stage: check
+ script:
+ - rustup component add clippy rustfmt
+ - cargo check
+ - cargo clippy
+ - cargo fmt -- --check
+
+gir:
+ stage: check
+ before_script:
+ - rm -f target/tools/bin/gir
+ script:
+ - make gir
+ - git diff -R --exit-code
+
# ostree-sys
ostree-sys:
stage: build
script:
- cargo test --verbose --manifest-path sys/Cargo.toml ${CURRENT_FEATURES}
- cache:
- paths:
- - cargo/
- - target/
publish_ostree-sys:
stage: publish
script:
- cargo publish --verbose --manifest-path sys/Cargo.toml --token $CRATES_IO_TOKEN
+ cache: {}
when: manual
# ostree
stage: build
script:
- cargo test --verbose ${CURRENT_FEATURES}
- cache:
- paths:
- - cargo/
- - target/
ostree_default_features:
stage: build
script:
- cargo test --verbose
- cache:
- paths:
- - cargo/
- - target/
-
-# canary until Debian Backports gets updated libostree
-ostree_all_features:
- stage: build
- script:
- - cargo test --verbose --all-features
- cache:
- paths:
- - cargo/
- - target/
- allow_failure: true
-
-ostree_nightly:
- stage: build
- image: rustlang/rust:nightly
- script:
- - cargo test --verbose ${CURRENT_FEATURES}
- cache:
- paths:
- - cargo/
- - target/
publish_ostree:
stage: publish
script:
- cargo publish --verbose --token $CRATES_IO_TOKEN
+ cache: {}
when: manual
# docs
--extern-html-root-url glib=https://gtk-rs.org/docs
--extern-html-root-url gio=https://gtk-rs.org/docs
script:
+ - rm -rf target/doc
- make merge-lgpl-docs
- cargo rustdoc --verbose --package ostree-sys --features dox -- ${RUSTDOC_OPTS}
- cargo rustdoc --verbose --package ostree --features dox -- ${RUSTDOC_OPTS}
- cache:
- paths:
- - cargo/
- - target/
artifacts:
paths:
- target/doc
before_script: []
script:
- cp -r target/doc public
+ cache: {}
artifacts:
paths:
- public